Many business enterprises use computer systems to monitor and process business activities and transactions. Business entities that handle complex transactions and activities, in particular, often employ distributed computer systems. As such, computer networks, systems and applications involved in such complex transactions and activities are inherently distributed and event-driven.
For example, an online retailer may use a business application to receive online purchase orders, an inventory application to manage the store's inventory and to communicate with its suppliers, and other applications or services to create online interfaces and to manage shipping. In another example, a web server often faces heavy client loads and serves many scripts registered on a number of different uniform resource locators (URLs). Because each client request can cause multiple monitoring events, and the requests are handled asynchronously and independently of each other, the server generates a continuous stream of monitoring events. In this example, a network administrator may be very interested in analyzing the network's performance based on these monitoring events.
In such complex systems, event happenings (e.g., online purchase) involved in the business activities and transactions are monitored to develop a better understanding of the performance of the business enterprise. Typically, monitoring events in such complex systems rely on correlating event streams from independent processes (e.g., online purchase, store inventory) in the complex system using a global identifier (e.g., process identifier, order number) found in each related event. However, as more and more different types of systems (e.g., supplier's system is a different type of system than online retailer) become interconnected with one another, the system participating in the interconnected transaction needs to augment their implementation in order to support the capture and propagation of the global identifier (also referred to as a “common key”) between the processes of the distributed systems.
In an attempt to relieve the requirement of augmenting the implementation of these systems, complex systems may prompt the user for a common key (e.g., random number) or a set of keys within the data, which can be used to correlate the events. Another alternative is for the complex systems to attempt to monitor each user of the system throughout the entire transaction from beginning to end.
However, requiring the user to provide a common key or a set of keys within the data to correlate the events is burdensome to the user. Furthermore, monitoring each user of the system throughout the entire transaction is impractical for business enterprises handling numerous transactions involving numerous users. Such a requirement is burdensome to the processing capability of the business enterprise.
Hence, there is not currently a means for efficiently monitoring events of complex business systems.